home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / m / maxonc++2.dms / maxonc++2.adf / MCPIncl.lha / stream.h < prev    next >
C/C++ Source or Header  |  1992-04-29  |  3KB  |  111 lines

  1. #ifndef __cplusplus
  2. #error <stream.h> must be compiled in C++ mode.
  3. #pragma +
  4. #endif
  5.  
  6. #ifndef _INCLUDE_STREAM_H
  7. #define _INCLUDE_STREAM_H
  8.  
  9. #ifndef EOF
  10. #define EOF (-1)
  11. #endif
  12.  
  13. struct stream;
  14.  
  15. typedef stream FILE;
  16.  
  17. class form
  18. {  struct tmpstr
  19.    { tmpstr *link;
  20.      char *dynamicstr;
  21.    } *string;
  22.   public:
  23.    form(const char*, ...);
  24.    ~form();
  25. };
  26.  
  27. class ios
  28. { protected:
  29.     FILE *file;
  30.     unsigned char basefield;
  31.     unsigned char GUESS, WHAT, FOR;
  32.   public:
  33.     ios(FILE *f=0);
  34.     FILE *getstream();
  35.     operator void*();
  36.  
  37.     enum open_mode { in=1, out=2, app=4 };
  38.     enum seek_dir { beg=-1, cur=0, end=1 };
  39. };
  40.  
  41. ios &flush(ios&);
  42. ios &endl(ios&);
  43. ios &dec(ios&);
  44. ios &hex(ios&);
  45. ios &oct(ios&);
  46.  
  47. class ostream: public virtual ios
  48. { protected:
  49.     unsigned char Reserved;
  50.   public:
  51.     ostream(FILE *f=0);
  52.     ostream &operator << (int);
  53.     ostream &operator << (unsigned);
  54.     ostream &operator << (long);
  55.     ostream &operator << (unsigned long);
  56.     ostream &operator << (long long);
  57.     ostream &operator << (unsigned long long);
  58.     ostream &operator << (char);
  59.     ostream &operator << (unsigned char);
  60.     ostream &operator << (signed char);
  61.     ostream &operator << (const char *);
  62.     ostream &operator << (float);
  63.     ostream &operator << (double);
  64.     ostream &operator << (long double);
  65.     ostream &operator << (form &);
  66.     ostream &operator << (const void*);
  67.     ostream &operator << (ios&(*f)(ios&));
  68.     ostream &put(char);
  69.     ostream &write(const char*, int);
  70. };
  71.  
  72. class istream : public virtual ios
  73. { protected:
  74.     unsigned char errorflag;
  75.   public:
  76.     istream(FILE *f=0);
  77.     istream &operator >> (char *);
  78.     istream &operator >> (unsigned char *);
  79.     istream &operator >> (char&);
  80.     istream &operator >> (unsigned char&);
  81.     istream &operator >> (signed char&);
  82.     istream &operator >> (short&);
  83.     istream &operator >> (unsigned short&);
  84.     istream &operator >> (int&);
  85.     istream &operator >> (unsigned &);
  86.     istream &operator >> (long&);
  87.     istream &operator >> (unsigned long&);
  88.     istream &operator >> (long long&);
  89.     istream &operator >> (unsigned long long&);
  90.     istream &operator >> (float&);
  91.     istream &operator >> (double&);
  92.     istream &operator >> (long double&);
  93.     istream &read(char *,int);
  94.     istream &get(char &);
  95.     istream &get(unsigned char &);
  96.     int      get();
  97.     istream &getline(char *buf, int len, char Delim = '\n');
  98.     istream &putback(char);
  99.     int eof();
  100.     operator void*();
  101. };
  102.  
  103. #define STREAM_MAXSTRING 80     // maximal von ">>" in String gelesene Zeichen
  104.  
  105. extern ostream cout, cerr, clog;
  106. extern istream cin;
  107. void exit(int);
  108.  
  109. #endif
  110.  
  111.